package com.youlai.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.system.common.model.Option;
import com.youlai.system.model.entity.BrandMenu;
import com.youlai.system.model.entity.SysMenu;
import com.youlai.system.model.form.BrandForm;
import com.youlai.system.model.form.MenuForm;
import com.youlai.system.model.query.MenuQuery;
import com.youlai.system.model.vo.BrandVO;
import com.youlai.system.model.vo.RouteVO;

import java.util.List;
import java.util.Set;

/**
 * 菜单业务接口
 * 
 * @author haoxr
 * @since 2020/11/06
 */
public interface BrandService extends IService<BrandMenu> {

    /**
     * 获取品牌表格列表
     *
     * @return
     */
    List<BrandVO> listMenus(MenuQuery queryParams);


    /**
     * 获取品牌下拉列表
     *
     * @return
     */
    List<Option> listMenuOptions();

    /**
     * 新增品牌
     *
     * @param menu
     * @return
     */
    boolean saveMenu(BrandForm menu);

    /**
     * 获取路由列表
     *
     * @return
     */
    List<RouteVO> listRoutes();

    /**
     * 修改品牌显示状态
     * 
     * @param menuId 品牌ID
     * @param visible 是否显示(1->显示；2->隐藏)
     * @return
     */
    boolean updateMenuVisible(Long menuId, Integer visible);

    /**
     * 获取角色权限集合
     *
     * @param roles
     * @return
     */
    Set<String> listRolePerms(Set<String> roles);

    /**
     * 获取品牌表单数据
     *
     * @param id 品牌ID
     * @return
     */
    BrandForm getMenuForm(Long id);

    /**
     * 删除品牌
     *
     * @param id
     * @return
     */
    boolean deleteMenu(Long id);

    List<BrandVO> brandList();
}
